// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
import * as vscode from 'vscode';
import { TestAgentWebviewProvider } from './TestAgentUIProvider';

/**
 * 
 * 插件的“激活”函数
 * 当 package.json 中定义的 'activationEvents' (例如 "onView:testAgentUIView")
 * 被触发时，VS Code 会调用这个函数。
 */
export function activate(context: vscode.ExtensionContext) {

// --- 1. 注册我们的 Webview 视图 Provider ---

    // (a) 创建 Provider 实例
    // 我们需要将插件的根目录 URI (context.extensionUri) 和上下文 (context) 传递给它
    const provider = new TestAgentWebviewProvider(context.extensionUri, context);

    // (b) [关键] 注册 Provider
    // - 第一个参数 "testAgentUIView" 必须与 package.json 中的 view ID 完全匹配。
    // - 第二个参数是我们刚刚创建的 provider 实例。
    context.subscriptions.push(
        vscode.window.registerWebviewViewProvider(
            TestAgentWebviewProvider.viewType, // 使用类中的静态属性 "testAgentUIView"
            provider
        )
    );

    // --- 2. [可选] 注册一个命令来手动聚焦视图 ---

    // 这个命令 "testagent-vscode-extension.start" 对应 package.json 中的 "commands"
    context.subscriptions.push(
        vscode.commands.registerCommand("testagent-vscode-extension.start", () => {
            // 'testAgentUIView.focus' 是 VS Code 自动为我们的视图创建的命令
            // 它可以让我们的侧边栏视图获得焦点
            vscode.commands.executeCommand("testAgentUIView.focus");
        })
    );

}

// This method is called when your extension is deactivated
export function deactivate() {}
